'''
Created on 2017年6月22日

@author: Administrator
'''


'''
测试lambda表达式(返回函数对象)
lambda 参数1,,参数2:返回表达式 或返回值

'''
g=lambda x,y:x*y
print(g(3,4))
print("###########分隔符##################")
'''
两个BIF：①：filter(function or None,iterable)
          第一个参数可以是一个函数也可以是None,如果是一个函数，
          则将第二个可迭代的数据里的每一个元素作为函数的参数 进行计算，
          把返回True的值筛选出来，如果第一个参数为None,则直接将第二个
          参数中的True的值筛选出来


'''
help(filter)
print("###########普通方法filter筛选偶数(元组tuple)#################")

def odd(x):
    return (x+1)%2

print(tuple(filter(odd,range(10))))


print("###########lambda表达式filter筛选偶数(列表list)#################")
print(list(filter(lambda x:(x+1)%2,range(10))))
print("###########lambda表达式filter筛选奇数(元组tuple)#################")
print(tuple(filter(lambda x:x%2,range(10))))


print("##############我是分隔符#######################")
'''


 map(function,iterable)
 ②：map：映射,将列表中每个元素作为函数的参数进行运算加工，直到可迭代序列每个元素都加工完毕
            返回所有加工后的元素构成的新序列。
 

'''
help(map)
print("##########测试map用法######################")
print(list(map(lambda x:x*2,range(10))))
